ARAL Plan模块接口变更说明文档
| 修订日期 | 修订版本 | 修订内容 | 修订人 |
|---|---|---|---|
| 2026.01.27 | v0.1 | 初始化文档 | 赵锦强 |
[TOC]
概述
本文档说明从 robot_library_interface.hpp 中的 Plan 模块接口重构到 robot_task.hpp 和 robot_planner.hpp 的接口变更情况。
重构后的架构:
- Task类 (
robot_task.hpp): 负责任务管理和调度,管理一个或多个规划器 - Planner类 (
robot_planner.hpp): 负责具体的路径规划和轨迹生成
接口变更列表
1. 初始化相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 初始化规划器状态 | tpInitiatePlanner |
rsInitiateRobotState |
调用Task::tskSetTaskState并从state获取起始规划信息 |
| 初始化规划器状态(含工具工件) | tpInitiatePlanner |
rsInitiateRobotState |
调用Task::tskSetTaskState并从state获取起始规划信息 |
2. 状态管理相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 设置规划器状态 | tpSetPlannerState |
Task::tskSetTaskState |
移至Task类,状态类型从PlannerStatus改为TaskState |
| 清空轨迹执行队列 | tpClearExecutionQueue |
Task::tskSetTaskState |
通过设置IDEL状态来清空队列 |
| 获取规划器状态 | tpGetPlannerStatus |
Task::tskGetTaskState |
移至Task类,返回类型从int改为TaskState |
3. 周期设置相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 设置规划周期 | tpSetPlannerCycle |
Task::tskSetCycle |
移至Task类,函数名简化 |
| 获取规划周期 | tpGetPlannerCycle |
Task::tskGetCycle |
移至Task类,函数名简化 |
4. 速度/加速度限制相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 获取笛卡尔空间最大速度 | tpGetMaximumCartesianVelocity |
Task::tskGetCartesianVelocityLimits |
移至Task类,函数名更明确 |
| 获取笛卡尔空间最大加速度 | tpGetMaximumCartesianAcceleration |
Task::tskGetCartesianAccelerationLimits |
移至Task类,函数名更明确 |
| 获取关节空间最大速度 | tpGetMaximumJointVelocity |
Model::mdlGetJointMaximumVelocity |
移至Model类 |
| 获取关节空间最大加速度 | tpGetMaximumJointAcceleration |
由Model提供 | 新架构中不再提供此接口 |
| 设置速度和加速度限制 | tpSetVelocityAndAccelerationLimits |
Task::tskSetCartesianVelocityAccelerationLimits |
移至Task类,仅保留笛卡尔空间设置,移除关节空间参数 |
| 缩放速度和加速度 | tpScaleVelocityAndAcceleration |
Task::tskSetVelocityScaleFactor |
移至Task类,仅保留速度缩放,移除加速度缩放参数 |
| 获取缩放比例 | tpGetScaledFactor |
Task::tskGetVelocityScaledFactor |
移至Task类,仅返回速度缩放比例,移除加速度参数 |
5. 功率限制相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 设置机器人功率限制 | tpSetRobotPowerLimits |
Model::mdlSetRobotPowerLimits |
移至Model类 |
| 获取机器人功率限制 | tpGetRobotPowerLimits |
Model::mdlGetRobotPowerLimits |
移至Model类 |
6. 容量和队列管理相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 设置规划器容量 | tpSetPlannerCapacity |
Planner::tpSetPlannerCapacity |
移至Planner类,接口保持不变 |
| 获取规划器容量 | tpGetPlannerCapacity |
Planner::tpGetPlannerCapacity |
移至Planner类,接口保持不变 |
| 获取规划器队列深度 | tpGetPlannerDepth |
Planner::tpGetPlannerDepth |
移至Planner类,接口保持不变 |
7. 运动时长相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 获取指定路径段运动时长 | tpGetMoveDuration |
Planner::tpGetMoveDuration |
移至Planner类,接口保持不变 |
| 获取剩余运动时长 | tpGetPlannerLeftMoveDuration |
Planner::tpGetPlannerLeftMoveDuration 或 Task::tskGetLeftMoveDuration |
Planner类中保留原接口,Task类中提供简化版本 |
8. 暂停点相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 获取暂停点信息 | tpGetPausedPoint |
Planner::tpGetPausedPoint |
移至Planner类,移除ik_eps参数 |
9. 路径点获取相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 获取未来时刻的路点信息 | tpGetPathPointAtGivenTime |
Planner::tpGetPathPointAtGivenTime |
移至Planner类,接口保持不变 |
| 获取路径上指定比例的路径点 | tpGetPathPointAtGivenPathLengthRatio |
Planner::tpGetPathPointAtGivenPathLengthRatio |
移至Planner类,接口保持不变 |
| 按分辨率长度插值路径点 | tpGetPathPointAtGivenResolutionLength |
Planner::tpGetPathPointAtGivenResolutionLength |
移至Planner类,接口保持不变 |
10. 轨迹更新相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 更新规划器状态(无输出) | tpUpdateCycle |
已删除 | 从0.39版本废弃 |
| 更新规划器状态并输出轨迹点 | tpUpdateCycle |
Task::tskUpdateCycle |
移至Task类,支持多机器人,输出改为vector,增加failed_planner参数用于错误定位 |
11. 运动添加相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 目标运动跟踪(含工具工件) | tpTargetMotionTracking |
Planner::tpTargetMotionTracking |
移至Planner类,移除tool_workpiece参数 |
| 目标运动跟踪 | tpTargetMotionTracking |
Planner::tpTargetMotionTracking |
移至Planner类,接口保持不变 |
| 轨迹跟踪(含工具工件) | tpTrajectoryTracking |
Planner::tpTrajectoryTracking |
移至Planner类,移除tool_workpiece参数 |
| 轨迹跟踪 | tpTrajectoryTracking |
Planner::tpTrajectoryTracking |
移至Planner类,接口保持不变 |
| 添加直线运动(含工具工件) | tpAddPositionLine |
Planner::tpAddPositionLine |
移至Planner类,移除tool_workpiece参数,支持多机器人整体规划 |
| 添加直线运动 | tpAddPositionLine |
Planner::tpAddPositionLine |
移至Planner类,接口保持不变 |
| 添加多点运动(含工具工件) | tpAddPoints |
Planner::tpAddPoints |
移至Planner类,移除tool_workpiece参数 |
| 添加多点运动 | tpAddPoints |
Planner::tpAddPoints |
移至Planner类,接口保持不变 |
| 生成无碰撞路径(含工具工件) | tpGenerateCollisionFreePoints |
Planner::tpGenerateCollisionFreePoints |
移至Planner类,移除tool_workpiece参数 |
| 生成无碰撞路径 | tpGenerateCollisionFreePoints |
Planner::tpGenerateCollisionFreePoints |
移至Planner类,接口保持不变 |
| 添加速度运动(含工具工件) | tpAddVelocityLine |
Planner::tpAddVelocityLine |
移至Planner类,移除tool_workpiece参数 |
| 添加速度运动 | tpAddVelocityLine |
Planner::tpAddVelocityLine |
移至Planner类,接口保持不变 |
12. 恢复和停止相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 恢复运动(含工具工件) | tpResume |
Task::tskResume |
移至Task类,大幅简化,移除所有参数,恢复逻辑由Task内部管理 |
| 恢复运动 | tpResume |
Task::tskResume |
移至Task类,大幅简化,移除所有参数 |
| 设置恢复点 | - | Planner::tpSetResumePoint |
新增接口,用于设置恢复点 |
| 停止运动 | tpStop |
Task::tskStop |
移至Task类,接口保持不变 |
| 终止交融 | tpSetEndPath |
Planner::tpSetEndPath |
移至Planner类,功能说明更新为"对插入到规划器的路径进行速度规划生成轨迹段,该接口不会中断动态交融" |
13. 同步控制相关接口(新增)
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 触发同步运动 | - | Task::tskSyncMoveOn |
新增接口,用于触发所有等待中的规划器同时开始规划 |
| 等待同步运动 | - | Task::tskWaitSyncMove |
新增接口,使任务进入等待状态,准备进行同步规划 |
14. 摆动相关接口
| 功能 | 原函数 | 替代函数 | 备注 |
|---|---|---|---|
| 设置摆动参数 | tpSetWeaveParameters |
Planner::tpSetWeaveParameters |
移至Planner类 |
| 更新摆动参数 | tpUpdateWeaveParameters |
Planner::tpUpdateWeaveParameters |
移至Planner类 |
主要变更总结
架构变化
职责分离: 原单一接口拆分为Task和Planner两个类
- Task: 负责任务管理、状态控制、同步协调
- Planner: 负责具体的路径规划和轨迹生成
参数简化: 大部分接口移除了
ToolWorkpiece参数多机器人支持: 新架构更好地支持多机器人场景,如
tskUpdateCycle支持输出多个轨迹点
接口命名变化
tp*前缀的接口:- 规划器相关功能 →
Planner::tp* - 任务管理相关功能 →
Task::tsk*
- 规划器相关功能 →
功能增强
- 同步控制: 新增
tskSyncMoveOn和tskWaitSyncMove支持多机同步 - 错误定位:
tskUpdateCycle增加failed_planner参数,便于多机器人场景下的错误定位 - 恢复简化:
tskResume大幅简化,恢复逻辑由Task内部管理
已删除功能
- 关节空间的速度/加速度限制获取接口
- 机器人功率限制相关接口
- 加速度缩放功能(仅保留速度缩放)